1. Field of the Invention
The present invention relates to a method and apparatus for improving a performance of decoding a low-density parity check (LDPC) code, which is one form of a forward error correction (FEC) coding scheme.
2. Description of the Related Art
In general, a sum-product algorithm, a minimum-sum (min-sum) algorithm, an offset min-sum algorithm, a normalized min-sum algorithm, and the like are utilized to decode a low-density parity check (LDPC) code.
The LDPC code may be expressed by a Tanner graph including a variable node and a check node, and may be decoded through iterative decoding, that is, iterative information transfer by the check node and variable node, in the Tanner graph.
The sum-product algorithm to be used for decoding the LDPC code may be expressed as described in the following.
In a variable node having two inputs, an information updating process may be expressed by L(r)=L(u)+L(v).
In a check node having two inputs, an information updating process may be expressed by
            tanh      ⁡              (                              L            ⁡                          (              r              )                                2                )              =                  tanh        ⁡                  [                                    L              ⁡                              (                u                )                                      2                    ]                    ·              tanh        ⁡                  [                                    L              ⁡                              (                v                )                                      2                    ]                                                              ⇔                          L              ⁡                              (                r                )                                              =                    ⁢                      2            ⁢                                                  ⁢                          tanh                              -                1                                      ⁢                          {                                                tanh                  ⁡                                      [                                                                  L                        ⁡                                                  (                          u                          )                                                                    2                                        ]                                                  ·                                  tanh                  ⁡                                      [                                                                  L                        ⁡                                                  (                          v                          )                                                                    2                                        ]                                                              }                                                                    =                    ⁢                                    ln              ⁢                                                          ⁢                              cosh                ⁡                                  (                                                                                    L                        ⁡                                                  (                          u                          )                                                                    +                                              L                        ⁡                                                  (                          v                          )                                                                                      2                                    )                                                      -                          ln              ⁢                                                          ⁢                                                cosh                  ⁡                                      (                                                                                            L                          ⁡                                                      (                            u                            )                                                                          -                                                  L                          ⁡                                                      (                            v                            )                                                                                              2                                        )                                                  .                                                        
In this example, L(u) and L(v) denote input information associated with each node, and L(r) denotes output information of each node.
In a Binary Input-Additive White Gaussian Noise Channel (BI-AWGNC), L(m) may be expressed by
      L    ⁡          (      m      )        =            2              σ        2              ⁢          m      .      
In this example, σ2 denotes a variance of a channel noise.
As described in the foregoing, the sum-product algorithm may be expressed by a sum of input information in the variable node, and may be expressed by a product of hyperbolic tangent functions of input information, that is, a product of ‘tan h( )’ functions, in a check node.
To decode the LDPC code through use of the sum-product algorithm, estimation of σ2, that is a variance of a channel noise, and calculation of a complex ‘tan h( )’ function or ‘ln(cos h( ))’ function may need to be performed.
To avoid the calculation of a complex function and the estimation of a variable of a channel noise, the min-sum algorithm has been proposed.
The min-sum algorithm for decoding the LDPC code may be expressed as described in the following.
In a variable node having two inputs, an information updating process may be expressed by r=u+v.
In a check node having two inputs, an information updating process may be expressed by r=sign(u)sign(v)min (|u|,|v|).
In this example, sign( ) denotes a sign of an input value.
The min-sum algorithm may be expressed by a sum of input information in the variable node, and may be expressed by a minimum value multiplied by signs of input information in the check node.
Although the sum-product algorithm may provide an excellent performance, the sum-product algorithm may have a significantly high complexity and may need to estimate a variance of a channel noise. Conversely, the min-sum algorithm may have a significantly low complexity and may not need to estimate a variance of a channel noise, but may provide a relatively low performance.
To improve deterioration of a performance caused while using the min-sum algorithm, either the normalized min-sum algorithm or the offset min-sum algorithm is generally utilized.
The normalized min-sum algorithm conventionally used for decoding the LDPC code may be expressed by r=u+v, r=α·sign(u)sign(v)min(|u|,|v|).
In this example, α(<1) denotes a constant for normalizing a check node, and may be appropriately selected based on a used LDPC code.
The offset min-sum algorithm conventionally used for decoding the LDPC code may be expressed by r=u+v, r=sign(u)sign(v)max(min(|u|,|v|)−β, 0).
In this example, β denotes an offset value of a check node, and may be appropriately selected based on an LDPC code to be used.
Although the normalized min-sum algorithm and the offset min-sum algorithm may provide a superior performance for a regular LDPC code, the performance may be deteriorated for an irregular LDPC code.